//被观察者
class Subject{ // 数据  
   constructor(name){
       this.name=name;
       this.data='123';
       this.observers=[];//观察者列表
   }
   // 添加观察者
   addObserver(observer){
       this.observers.push(observer);
   }
   setData(newData){
      this.data=newData;
      this.observers.forEach(o=>o.update(this.data))
   }
}


//观察者
class Observer{
    constructor(name){
        this.name=name;
    }
    update(data){
        this.name.textContent=data;
        console.log(this.name,'看到了:'+data)
    }
}
let div=document.getElementsByTagName('div')[0]
let p=document.getElementsByTagName('p')[0]
let sub=new Subject('数据')
let o1=new Observer(div)
let o2=new Observer(p)
sub.addObserver(o1)
sub.addObserver(o2)